在了解接下來的單元前,先簡單知道Ruby世界的資料型別。
*普羅大眾的「資料型別」?
電腦的功能就是處理無數的資料,資料是儲存在記憶體的儲存區,由於資料的型態各不相同,在儲存時所需要的容量不一,不同的資料必須要配給不同的空間大小來儲存,因而有了資料型態(Data type)的規範。
只要是資料都有型別。
*Ruby世界的資料型別
由於Ruby是個完全物件導向的語言,從下圖可以看到物件的階層關係,所有型別皆繼承自物件(Object),甚至是模組(Module)和類別(Class)。
所有的型別都是物件。
*什麼是字串?
使用引號包起來的一段文字。
*建立方法?
方法 | 程式解析 | 範例 |
---|---|---|
new方法 | 建立出物件 | wish = String.new("World peace") |
單引號 Single Quote | 不解析內容,不做代入與翻譯 | wish = 'World peace' |
雙引號 Double Quote | 解析內容 | wish = "World peace" |
%q() | 同單引號,Ruby特有的寫法 | %q(World peace) |
%Q() | 同雙引號,Ruby特有的寫法 | %Q(World peace) |
*字串可以串接!如何串接字串? -> 字串嵌入 String interpolation
Ruby世界的串接方式:
字串中可使用#{expr}的形式插入程式碼,稱為Interpolation,通常用來填入變數,不過也可以執行程式。
value = 2 * 5
puts "2 * 5 = #{value}" # 2 * 5 = 10
puts "2 * 5 = #{2 * 5}" # 2 * 5 = 10
單引號和雙引號最大的差別:
只有使用雙引號的字串可以使用String interpolation,用法如下。
name = "Lisa"
wish = "World peace"
puts "I'm #{name}, I wish for #{wish}."
印出來 -> I'm Lisa, I wish for World peace.
puts 'I am #{name}, I wish for #{wish}.'
印出來 -> I am #{name}, I wish for #{wish}.
*字串當中也需要用到引號該怎麼辦?
puts 'I'm Lisa, I wish for World peace.'
印出來 -> syntax error, unexpected tIDENTIFIER, expecting end-of-input
會出現語法錯誤。
解法一:改用雙引號" "
。
解法二:加上反斜線\
,反斜線的後面加上非字串的單引號,讓他跳脫字元。
解法三:改用%q()
,效果等同單引號。
請回答以下題目:
1.請解釋字串使用雙引號、單引號,有何不同?
2.以下程式碼出錯了,請改寫他。
puts "我喜歡"為你自己學Ruby on Rails"這本書,深入淺出,真是初學者的最佳入手書!"
印出來 -> syntax error, unexpected tIDENTIFIER, expecting end-of-input